> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-relayer_docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Unreal Ecosystem Wallet Sessions

> Ecosystem Wallet Documentation for Sequence's Unreal SDK.

### Add Session

Add additional sessions to your existing login method. Every session shares the same wallet address with the possibility
of assigning different permissions for each session. You must provide a `IPermissions` object whenever you call `AddSession`.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-relayer_docs/ucv40TOkiu_4QScw/images/unreal/ecosystem/add_session.png?fit=max&auto=format&n=ucv40TOkiu_4QScw&q=85&s=83adec839d5b0fd8890598cd1f0af599" width="967" height="500" data-path="images/unreal/ecosystem/add_session.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [OnSuccess](const bool& Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->AddSession(Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>

### Check if Wallet Exists

Check if the user is already signed in with a wallet. If this returns false, you want the user to sign in.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-relayer_docs/ucv40TOkiu_4QScw/images/unreal/ecosystem/check_signedin.png?fit=max&auto=format&n=ucv40TOkiu_4QScw&q=85&s=349e0f71ad94b2bfad273c4dbff99a0e" width="1908" height="992" data-path="images/unreal/ecosystem/check_signedin.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    bool Exists = Wallet->CheckIfWalletExists();
    ```
  </Tab>
</Tabs>

### Clear Sessions

Clear all sessions from storage. Use this for any 'Sign Out' functionality.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-relayer_docs/ucv40TOkiu_4QScw/images/unreal/ecosystem/clear_sessions.png?fit=max&auto=format&n=ucv40TOkiu_4QScw&q=85&s=e21bd3648480bf6fdf6a6abc52c774e0" width="1908" height="992" data-path="images/unreal/ecosystem/clear_sessions.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->ClearSessions();
    ```
  </Tab>
</Tabs>

### Get Wallet Info

Get relevant information from the current wallet.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-relayer_docs/ucv40TOkiu_4QScw/images/unreal/ecosystem/wallet_info.png?fit=max&auto=format&n=ucv40TOkiu_4QScw&q=85&s=4eaf1cd58317c7197d7df7055aa25a23" width="1908" height="992" data-path="images/unreal/ecosystem/wallet_info.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    FWalletInfo WalletIno = Wallet->GetWalletInfo();
    ```
  </Tab>
</Tabs>
